统一(简单)专题图 Sample详情

最后更新时间:2020年12月11日

统一专题图采用单一符号信息配置图层中的所有图元,主要用于强调数据的分布特征。

主要通过API程序包com.zondy.mapgis.map下的专题图类接口实现:


具体实现方法如下:

1

获取矢量图层

map = aMapView.getMap();
vectorLayer = (VectorLayer) map.getLayer(i);

2

创建点/线/区图形信息

根据当前图层类型创建相应几何图形信息(GeomInfo),在此以区图层为例。

//创建区几何图形信息对象
RegInfo regInfo = new RegInfo();   
//设置角度
regInfo.setAngle(0);
//设置填充颜色(请参考MapGIS颜色库中颜色编号)
regInfo.setFillClr((int) (1 + Math.random() * (1500 - 1 + 1)));
//设置填充模式
regInfo.setFillMode((short) 0);

3

创建统一专题图绘制信息对象

创建统一专题图绘制信息对象(ThemeInfo),调用专题图信息对象的setGeoInfo方法设置图形信息,同时设置其专题图名称、是否显示、最大最小显示比等参数。

GeomInfo mapinfo = new GeomInfo();                  //定义几何图形信息对象

ThemeInfo themeInfo = new ThemeInfo();              //创建简单专题图绘制信息对象
mapinfo.setRegInfo(regInfo);                        //图形信息对象设置为区图形信息
themeInfo.setGeoInfo(mapinfo );                     //为专题图绘制信息对象设置图形信息
themeInfo.setCaption("简单专题图");                  //设置名称
themeInfo.setIsVisible(true);                       //设置是否显示
themeInfo.setMaxScale(0);                           //设置最大显示比
themeInfo.setMinScale(0);                           //设置最小显示比

4

创建简单专题图对象

创建简单专题图对象(SimpleTheme),调用其setThemeInfo方法设置专题图信息,同时设置专题图的名称、可见性等信息。

SimpleTheme simpleTheme = new SimpleTheme();         //创建简单专题图对象
simpleTheme.setName("专题图");                        //设置专题图的名称
simpleTheme.setVisible(true);                        //设置专题图的可见性
simpleTheme.setThemeInfo(themeInfo);                 //设置简单专题图的绘制信息

5

显示专题图

获取专题图集合Thems,调用其append方法添加专题图。

String witchLayerName; //定义选择的图层名称变量
VectorLayer witchLayer;//定义矢量图层对象

//根据图层名称获取图层索引
int i = map.indexOf(witchLayerName);
//根据图层索引获取地图图层
witchLayer = (VectorLayer) map.getLayer(i);

// 将专题图添加到对应矢量图层上
witchLayer.getThemes().append(simpleTheme);
//停止当前的获取数据的请求(从服务器请求或从本地请求)
aMapView.stopCurRequest(new MapView.MapViewStopCurRequestCallback() {
    @Override
    public void onDidStopCurRequest() {
        aMapView.forceRefresh();//刷新地图视图
    }
});

统一专题图实现效果如下图所示:

统一专题图.jpg